Memory allocation to store broadcast information

ABSTRACT

Methods and systems for allocating memory of user terminals are disclosed. A user terminal may determine a weight for one or more categories, each category being associated with Internet information to be broadcast. The user terminal also may determine an available memory size of memory and may allocate memory to the one or more categories for storing the Internet information based on the weights and the available memory size.

FIELD

Example embodiments of the invention generally relate to memoryallocation for storing broadcast information. More specifically, exampleembodiments of the invention relate to allocating memory for storingbroadcast Internet information.

BACKGROUND

The amount of information available on the Internet is rapidlyincreasing, especially in the era of web 2.0. Some estimates indicatethat between the years 1996 and 2007, the fraction of the world'spopulation that used the Internet grew from approximately 1% toapproximately 22%. Irrespective of the actual percentages, trendssuggest that the Internet will continue to grow. Research has confirmed,however, that there is only a small quantity of information of interestto most netizens.

Traditionally, information is transmitted in a one-to-one fashion, wherea client requests the information of interest from a server. One-to-onetransmission is not an efficient way to send the same information tomultiple users. Moreover, the existing Internet infrastructure has poorrobustness. Conventional solutions have proposed the idea of wirelesslybroadcasting Internet data through a satellite or digital broadcastingsystem, but have not effectively addressed the issues associated withbroadcasting data to a group of clients.

BRIEF SUMMARY

The following presents a simplified summary of some example embodimentsof the invention in order to provide a basic understanding of someexample embodiments of the invention. This summary is not an extensiveoverview, and is not intended to identify key or critical elements or todelineate the scope of the claims. The following summary merely presentssome concepts and example embodiments in a simplified form as a preludeto the more detailed description provided below.

Convention solutions have not addressed how to efficiently allocatememory to store Internet information broadcast to a user terminal havinglimited storage space.

Some example embodiments of the present disclosure are directed to anapparatus, method and system for memory allocation of a user terminalthat receives broadcast Internet information and for improved broadcastdistribution of Internet information.

More specifically, methods, apparatus, and systems in accordance withsome example embodiments of the present invention provide user terminalswith efficient memory allocation. A user terminal may determine a weightfor one or more categories, each category being associated with Internetinformation to be broadcast. The user terminal also may determine anavailable memory size of memory and may allocate memory to the one ormore categories for storing the Internet information based on theweights and the available memory size.

A user terminal may receive information on memory requirements for oneor more categories broadcast by a provider server. The user terminal maydetermine a weight for the one or more categories, determine anavailable memory size, and allocate memory to each of the one or morecategories based on the memory requirements, the weights, and theavailable memory size.

Additionally, methods, apparatus, and systems in accordance with certainexample embodiments of the present invention provide for crawling andaggregating Internet information to identify Internet information,categorizing Internet information into categories, generating a categoryguide to describe characteristics of each of the categories,broadcasting category guide to at least one user terminal, andbroadcasting the internet information by category to the at least oneuser terminal in accordance with the category guide.

BRIEF DESCRIPTION OF THE DRAWINGS

A more complete understanding of the present invention and theadvantages thereof may be acquired by referring to the followingdescription in consideration of the accompanying drawings, in which likereference numbers indicate like features, and wherein:

FIG. 1 illustrates a network computing environment suitable for carryingout one or more example embodiments of the invention.

FIG. 2 illustrates architecture of a user terminal suitable for carryingout one or more example embodiments of the invention.

FIG. 3 illustrates a method performed by a provider server suitable forcarrying out one or more example embodiments of the invention.

FIG. 4 illustrates a memory allocation method performed by a userterminal suitable for carrying out one or more example embodiments ofthe invention.

FIG. 5 illustrates an example of a user interface displayed to a user bya user terminal in accordance with one or more example embodiments ofthe invention.

FIG. 6 illustrates a memory allocation example for a user terminal inaccordance with one or more example embodiments of the invention.

DETAILED DESCRIPTION

In the following description of the various embodiments, reference ismade to the accompanying drawings, which form a part hereof, and inwhich is shown by way of illustration various embodiments in which oneor more example embodiments of the invention may be practiced. It is tobe understood that other embodiments may be utilized and structural andfunctional modifications may be made without departing from the scope ofthe present invention.

FIG. 1 illustrates a network computing environment 100 suitable forcarrying out one or more illustrative example embodiments of theinvention. The network computing environment 100 may include a providerserver 102 communicatively coupled to a network 104. The network 104 maybe communicatively coupled to a broadcast station 106 that maycommunicate with a user terminal 108. For instance, the user terminal108 may receive data wirelessly communicated from the broadcast station106, such as, for example, via a cellular telecommunication network or awireless local area network (WLAN). Also, the network computingenvironment 100 may provide for a wired connection between the providerserver 102 and the user terminal 108. The network computing environment100 also may include a wireless or wired backchannel via broadcaststation 106 or through backchannel station 110. The provider server 102may use the backchannel to exchange information with the user terminal108. For instance, the provider server 102 may communicate a categoryguide, as described in further detail below, to the user terminal 108.Moreover, the user terminal 108 may communicate a subscription requestthat requests a subscription to an Internet information broadcastingservice.

The provider server 102 and the user terminal 108 may employ InternetProtocol (IP) datacasting protocols, such as, but not limited to,Digital Video Broadcast (DVB), DVB-Handheld (DVB-H), Digital MultimediaBroadcasting (DMB), Media FLO (Forward Link Only), or MultimediaBroadcast Multicast Service (MBMS), and/or the like. For instance, theprovider server 102 may communicate with the user terminal 108 via oneor more channels. The provider server 102 may cause the Internetinformation to be broadcast as a packet stream on a specific channel orfrequency. For example, the network computing environment 100 mayprovide an announcement channel and a broadcast channel. The providerserver 102 may communicate control data over the announcement channeland Internet information over the broadcast channel. The announcementchannel and the broadcast channel may be separate time slots in a timeslotted transmission scheme, may be assigned separate frequencies in afrequency division transmission scheme, or may be assigned separatecodes in a code based transmission scheme, or may use other suitablemanners to separate the channels. Also, the announcement channel may beprovided over the backchannel. To receive the transmissions, the userterminal 108 may lock itself on a specific broadcast channel and/or datastream to receive the broadcast Internet information and the categoryguide.

It is noted that although only a single instance of each device isdepicted in FIG. 1, the network computing environment 100 may includeone or more of each of these devices. Moreover, the functions performedby each of the devices illustrated in FIG. 1 may be split intoadditional devices or the illustrated devices may be combined with oneanother. Further, the network computing environment 100 may also beincluded in other systems (not shown) or may include additional devices.

FIG. 2 illustrates a user terminal 108 suitable for carrying out one ormore illustrative example embodiments of the invention. The userterminal 108 may be a mobile communication device, a mobile phone, or amobile computer, as illustrated, or may also be a digital video recorder(DVR), a set-top box (STB), a server computer, a computer, a hard disc,an Internet browser device, a gaming device, an audio/video player, adigital camera/camcorder, a television, a radio broadcast receiver, apositioning device, a wired or wireless communication device, and/or anycombination thereof.

In the depicted example, the user terminal 108 includes display 202,transceiver 204, processor 206, memory 208 or other computer readablemedia and/or other storage, and user interface 210. The user interface210 may include a keypad, touch screen, voice interface, four arrowkeys, joy-stick, data glove, mouse, roller ball, touch screen, or othersuitable device for receiving input from a user to control the userterminal 108.

Computer executable instructions and data used by processor 206 andother components within user terminal 108 may be stored in the memory208 in order to carry out any of the method steps and functionsdescribed herein. The memory 208 may be implemented with any combinationof read only memory modules or random access memory modules, optionallyincluding both volatile and nonvolatile memory. Also, some or all ofuser terminal 108 computer executable instructions may be embodied inhardware or firmware (not shown).

The user terminal 108 may be configured to receive, decode, and processbroadcast Internet information transmissions from the broadcast station106 at the transceiver 204. It is noted that the transceiver 204 mayinclude one or more transceivers, such as one capable of receiving thebroadcast Internet information over a broadcast channel and anothercapable of communicating over the backchannel. The user terminal 108 mayhave a web browser to launch a software program for processing thereceived broadcast Internet information transmissions and for generatinginstructions for communicating via the backchannel. The web browser maybe any suitable web browser, such as, but not limited to, MozillaFirefox, Internet Explorer, Google Chrome, or other programs forinterfacing the user terminal 108 with the Internet.

In an example, the user terminal 108 may be configured to receive,decode, and process transmission based on one or more of the DigitalVideo Broadcast (DVB) standards, such as DVB-H or DVB-MHP, DVB-Satellite(DVB-S), DVB-Terrestrial (DVB-T) or DVB-Cable (DVB-C). Similarly, otherdigital transmission formats may be used to deliver content andinformation, such as, but not limited to, Advanced Television SystemsCommittee (ATSC), National Television System Committee (NTSC),Integrated Services Digital Broadcasting-Terrestrial (ISDB-T), DigitalAudio Broadcasting (DAB), DMB, MediaFLO, MBMS, DIRECTV, and/or the like.Also other digital transmission formats may be used to deliver contentand information, such as, but not limited to, Global System for MobileCommunications (GSM), 3G, Universal Mobile Telecommunications System(UMTS), Wideband Code Division Multiple Access (WCDMA), CDMA2000, 4G,Long Term Evolution (LTE), and/or the like. Further, the user terminal108 also may be configured to receive, decode and process other types oftransmissions, such as, but not limited to, FM/AM Radio transmissions,WLAN transmissions, or transmissions using other wired and wirelessprotocols and/or the like. In one aspect of the invention, the userterminal 108 may receive radio data stream (RDS) messages.

The broadcast Internet information transmission also may be time sliced,such as in DVB-H technology. Time-slicing may reduce the average powerconsumption of the user terminal 108 and may enable smooth and seamlesshandover. Time-slicing may comprise sending data in bursts using ahigher instantaneous bit rate as compared to the bit rate required ifthe data were transmitted using a traditional streaming mechanism. Inthis case, the user terminal 108 may have one or more buffer memoriesfor storing the decoded time sliced transmission before presentation.

Referring again to FIG. 1, the provider server 102 may process theInternet information to determine which is the most popular. Popularity,for example, may be based on the number of different devices, includinguser terminals 108, personal computers, etc., that have accessedparticular Internet information. For instance, the user terminal 108 maycommunicate to the provider server 108 statistics on Internetinformation use and categories of interest to the user through thewireless backchannel. Devices other than the user terminals 108 also mayprovide statistics on Internet information use and categories ofinterest to the user to the provider server 102. Based on the popularityinformation, the provider server 102 may categorize the Internetinformation into categories and may broadcast the Internet informationto the user terminal 108 by one or more categories. Alternatively, theprovider server 102 may categorize the Internet information intocategories based on information received from content providers or basedon a category hierarchy generated by the provider server 102 withoutdetermining which of the Internet information is the most popular. Also,the provider server 102 may search the Internet based on keywords ormetatags to create the categories. Popularity may be one way to identifyInternet information suitable for broadcast to many user terminals. Theprovider server 102 also may select Internet information that is staticand changes relatively infrequently and would be suitable forsimultaneous broadcast to a large group of user terminals 108. To obtainInternet information that is interactive and/or is of interest to alimited number of users, the user terminal 108 may communicate with theprovider server 102 via the backchannel to directly access such Internetinformation.

The categories may be different types of genres, services, specific orgeneral links, any combination thereof, and/or the like. The categoriesalso may classify the Internet information in other manners. Examples ofgenres are sports, news, and music. Examples of different servicesinclude a web-based service, such as social networking websitesFacebook, Myspace, and Flickr. A specific link may be an URL that hasspecific memory requirement information for content available throughthat link, whereas a general link may be a link without memoryrequirement information. Examples of specific links are links on aparticular web page, such as a “my favorites” link, my friends inFacebook, or myfriends in Flickr. Categorizing Internet information bythe provider server 102 is further described below with reference toFIG. 3.

FIG. 3 illustrates a method 300 performed by the provider server 102suitable for carrying out one or more illustrative example embodimentsof the invention. In block 302, the provider server 102 may includespecific programs (e.g., software, firmware, hardware) to crawl andaggregate Internet information for broadcasting to the user terminal108. For instance, the Internet information may be one or more webpages,audio and/or video files, image files, game files, multimediapresentations, maps, program files, content files, other information,any combination thereof, and/or the like.

In block 304, the provider server 102 may organize the Internetinformation into categories. To categorize the Internet information, theprovider server 102 may generate a description for each of thecategories that can be communicated to the user terminal 108 prior tobroadcasting Internet information. The description may include a name ofeach of the categories of Internet information to be broadcasted, thetotal size or memory need of the Internet information included in eachcategory, the different types of Internet information in each category,and the start time, the end time and/or time interval indicating when aparticular category is being broadcast. For example, the provider server102 may construct the description using eXtensible Markup Language (XML)and may include a document type definition (DTD) document associatedwith each category. An example of the DTD document for a particularcategory may be:

<!--Root element-->

<!ELEMENT Description (TNumber, Tsize, Category+)>

<!ELEMENT TNumber (#PCDATA)>

<!ELEMENT Tsize (#PCDATA)>

<!ELEMENT Category (Identifier, Name, CDescription, LayerNumber,RelationLayer, TSize, AmountofPage, StartTime, EndTime,DurationFromNow)>

<!ELEMENT Identifier (#PCDATA)>

<!ELEMENT Name (#CDATA)>

<!ELEMENT CDescription (#CDATA)>

<!ELEMENT LayerNumber (#PCDATA)>

<!ELEMENT RelationLayer (FatherLayer, SonLayer)>

<!ELEMENT FatherLayer (EMPTY|#CDATA)*>

<!ELEMENT SonLayer (EMPTY|#CDATA)*>

<!ELEMENT TSize (#PCDATA)>

<!ELEMENT AmountofPage (#PCDATA)>

<!ELEMENT StartTime (#PCDATA)>

<!ELEMENT EndTime (#PCDATA)>

<!ELEMENT DurationFromNow (#PCDATA)>

<!--End of DTD-->

Referring again to FIG. 3, in block 306, the provider server 102 maygenerate a category guide including the description for each of thecategories. The category guide may include the document type definition(DTD) document for each of the different categories. For example, thecategory guide may be an Electronic Service Guide (ESG). The providerserver 102 also may periodically update the category guide andsubsequently send an updated category guide to change, add, or deletethe categories. In example embodiments, the memory requirements may bestatic during a time period T, and if the provider server 102 hasidentified new Internet information or new versions of Internetinformation, the category guide may be updated with the new memoryrequirements and broadcast to the user terminals 108.

In block 308, the provider server 102 may broadcast the category guideto at least one user terminal 108. For instance, the provider server 102may communicate the category guide to the broadcast station 106 via thenetwork 104, and the broadcast station 106 may wirelessly communicatethe category guide to the user terminal 108. In one example, the server102 may repeatedly broadcast the category guide and Internet informationduring certain time intervals. Further, the category guide may includeinformation to identify those time intervals and may indicate when thecategory guide is going to be broadcast and/or updated and when somespecific Internet information and/or category will be broadcast. Thecategory guide may also be transmitted via the backchannel station 110over the wireless telecom back channel, as illustrated in FIG. 1.

In block 310, the provider server 102 may broadcast the Internetinformation by category to the at least one user terminal 108. Theprovider server 102 may broadcast the Internet information in accordancewith the information included in the category guide. Moreover, theprovider server 102 may encrypt the Internet information beforebroadcasting such that only user terminals 108 subscribing to a servicefor the broadcast Internet information are able to decode thebroadcasts. The provider server 102 may also communicate a timeidentifier, a category identifier, and/or version identifier to identifythe time at which the Internet information is being broadcast, toidentify the category of the Internet information being transmitted,and/or to identify the version of the Internet information.

To handle the potentially large volume of Internet information beingbroadcast by the provider server 102, the user terminal 108 mayefficiently allocate its memory 208 based on the interests of the userand/or the browsing history of the user. When the broadcast Internetinformation is received, the user terminal 108 may store Internetinformation of interest to the user in proportion to the interest of theuser, and may discard Internet information that is not of interest tothe user, as further described below.

FIG. 4 illustrates a memory allocation method performed by the userterminal 108 suitable for carrying out one or more illustrative exampleembodiments of the invention. In block 402, the user terminal 108 mayreceive the category guide from the provider server 102. The user of theuser terminal 108 may, for example, subscribe to an Internet formationbroadcasting service by sending a subscription request to the providerserver 102 via the wireless back channel and may receive decodinginformation, such as, but not limited to, a decryption code, DigitalRights Management (DRM) information, and/or the like, to decode thebroadcast Internet information and the category guide. The user terminal108 may execute a software application, for instance, to process thereceived category guide and broadcast Internet information. Throughprocessing the DTD document of the category guide, the user terminal 108can display to the user at the display 202 all of the categories ofInternet information to be broadcast. In an example, the category guidemay include the DTD document that identifies the memory requirements foreach of the categories to be broadcast.

In block 404, the user terminal 108 may assign a weight to eachcategory. The weight may be assigned based on interests of the userand/or based on the browsing history of the user. In variousembodiments, the user terminal 108 may: (1) assign weights based only onthe interests of the user, (2) the user terminal 108 may assign weightsbased on the interests of the user, and may modify the assigned weightsbased on the browsing history of the user, or (3) may assign weightsbased only on the browsing history of the user. The browsing history,for example, may identify particular web pages that the user terminal108 has accessed within a certain time period. To assign weights to thecategories based on interests of the user, the user terminal 108 mayprompt the user to enter preference inputs selecting categories ofinterest.

FIG. 5 illustrates an example of a user interface displayed to the userby the user terminal 108 in accordance with one or more illustrativeexample embodiments of the invention. The user terminal 108 may processthe category guide to display the available categories andsubcategories, and the user may indicate his or her preference for each.Every category also may include text (not shown) describing eachcategory to help the user understand the content of each category. Asillustrated, the user interface includes category 1, subcategory 1.1,category 2, subcategory 2.1, . . . , and category N. If the user selectsa category (e.g., snow skiing) to indicate that the user is interestedin that category, the user terminal 108 can assign the weight of thiscategory to 1. If a user does not select a category, thus indicating nointerest in the category, the user terminal 108 may assign a weight of 0to the category to indicate strength of the user's preference. Also, theuser may assign a weight between 0 and 1 by adjusting the indicator 502.The weight of each category may indicate a fondness degree the user hasfor a particular category.

The weights of each category can also be assigned according to thebrowsing history of user with or without prompting the user for his orher interests. For instance, the user terminal 108 may monitor theuser's Internet browsing behavior on direct access Internet browsingover a two-way network connection and/or on the broadcast Internetinformation, or in other ways. Direct access Internet browsing may referto Internet information that the user terminal 108 directly accesses,such as, for example, through a user typing a URL into an address bar ofa browser that returns the requested webpage or through a user enteringkeywords into an Internet search engine and selecting Internetinformation of interest from the results returned by the Internet searchengine.

To assign a weight to a category, the user terminal 108 may identifyvarious browsing history factors during a time period T. The browsinghistory factors may include, but are not limited to: (1) the amount ofInternet information (e.g., web pages) in a category that has beenopened by the user at the user terminal, (2) the proportion of differentInternet information that has been opened within a particular category,(3) the browsing speed of Internet information in a category comparedwith the user's average browsing speed, and so on. For example, overtime period T, if the user has caused the user terminal 108 to openInternet information in a particular category many times, the userterminal 108 may infer that the user is very interested in the category.Likewise, if the proportion of Internet information opened in a categoryduring period T is high (e.g., user has viewed 7 of 10 web pages in acategory), the user terminal 108 may infer that the user is veryinterested in the category. Conversely, if the Internet information in acategory has been opened infrequently or not at all during time periodT, the user terminal 108 may infer that the user is not very interestedin the category. Similarly, if the proportion of unopened Internetinformation in the category during period T is high, the user terminal108 may infer that the user is not very interested in the category.

Additionally, every user has a natural web page browsing speed, whichcan be deduced from the amount of time a user spends browsing particularInternet information (e.g., the amount of time a web page is displayedto a user). If Internet information is browsed at a speed faster than anaverage browsing speed of the user, the user terminal 108 may concludethat the user is not very interested in this Internet information. Incontrast, if Internet information is browsed at a speed slower than theaverage browsing speed of the user, the user terminal 108 may concludethat the user is interested in this Internet information. The userterminal 108 may also monitor periods of user inactivity, such as whenthe user has stopped using the user terminal 108, to prevent the userterminal 108 from determining that the user is very interested Internetinformation of a category when in actuality the user has stopped usingthe user terminal 108 and left open the Internet information of acertain category. The following gives an example of the user terminal108 assigning a weight to categories based on the browsing historyfactors described above.

Initially, the user terminal 108 may determine whether the user hasinput his or her interests in the categories, such as that describedabove with reference with FIG. 5, to assign initial weights to each ofthe categories. If weights have previously been assigned, the userterminal 108 may adjust the weights based on the browsing history of theuser as described below, or may proceed to block 406 without modifyingthe weights. If no weights have been previously assigned to one or morecategories, the user terminal 108 may assign each of the weights aninitial value (e.g., zero) and the user terminal 108 may adjust theinitial value of the weights based on the browsing history of the user.

To assign initial weights based on the user's browsing history, the userterminal 108 may assign a numerical value as a weight to each categorythat depends on the number of times a user has opened Internetinformation in a category, how much of the Internet information the userhas browsed within a category (e.g., number of web pages viewed whencompared with the total number of web pages in a category), the speedthe user browses through Internet information in a category, and/or anycombination thereof. If the number of times a user opens Internetinformation in a particular category is greater when compared with theaverage number of times a user opens Internet information in othercategories, the user terminal 108 may add a larger value to increase theweight of the category. Additionally, if the user terminal 108determines that a user has browsed a larger amount of Internetinformation in a category when compared with the average amount ofInternet information viewed in the other categories, the user terminal108 may add a larger value to the weight for that category. Furthermore,if the user terminal 108 determines that a user has browsed Internetinformation in a category for a longer amount of time when compared withthe average amount of time spent browsing Internet information in othercategories, the user terminal 108 may add a larger value to the weightfor that category.

Conversely, if the number of times a user opens Internet information ina particular category is less when compared with the average number oftimes a user opens Internet information in other categories, the userterminal 108 may add a smaller value to the weight of the category.Also, if the user terminal 108 determines that a user has browsed lessof the Internet information in a category when compared with the averageamount of Internet information viewed in other categories, the userterminal 108 may add a smaller value to the weight for that category.Moreover, if the user terminal 108 determines that a user has browsedInternet information in a category for a shorter amount of time whencompared with the average amount of time spent browsing Internetinformation in other categories, the user terminal 108 may add a smallervalue to the weight for that category.

In the following example, the user terminal 108 may add added valueA_V_(i) to the weight W_(i) of category i in accordance with thefollowing equation:

$\begin{matrix}{{{A\_ V}_{i} = {\frac{{Value}_{{Times}\; \_ \; {Category}\; \_ \; i}}{{Value}_{{Time}\; s\; \_ \; {All}\; \_ \; {Categories}}} \times \frac{{Number}_{{Open}\; \_ \; I\; n\; t\; {info}\; {\_ i}}}{{Number}_{{Intoinf}\; o\; \_ \; A\; l\; l\; \_ \; i}} \times \frac{{Number}_{{Interested}\; \_ \; I\; {ntInfo}\; \_ \; i}}{{Number}_{{open}\; \_ \; {IntInfo}\; \_ \; i}}}},} & (1)\end{matrix}$

where Value_(Times) _(—) _(category) _(—) _(i) is the number of timescategory i was opened in period T, and Value_(Times) _(—) _(All) _(—)_(Categories) is the total number of times Internet Information wasopened in any of the categories in period T. Number_(open) _(—)_(IntInfo) _(—) _(i) is the number of different types of Internetinformation that was opened in category i in period T, andNumber_(IntInfo) _(—) _(All) _(—) _(i) is the total number of thedifferent types of Internet information in category i.Number_(interested) _(—) _(IntInfo) _(—) _(i) is the total number of thedifferent types of Internet information in the category i that the userwas interested in time period T (e.g., Internet information whosebrowsing speed was slower than the average browsing speed), andNumber_(open) _(—) _(IntInfo) _(—) _(i) is the number of the differenttypes of Internet information opened in the category i during timeperiod T. Other equations also may be used to express a relationshipbetween these factors.

Optionally, the user terminal 108 may include a threshold comparisonbefore adjusting the weight of a category. For example, the userterminal 108 may compare the added value A_V_(i) to a threshold a andmay adjust the weight W_(i) of category i by A_V_(i) if the added valueA_V_(i) in equation (1) is greater than threshold α. Otherwise, if addedvalue A_V_(i) is less than the threshold α, the user terminal 108 mayretain the previously assigned weight W_(i) of category i without addingthe added value A_V_(i).

In another example, the user terminal 108 may adjust the weight W_(i) ofcategory i by a specific increment Δ instead of by A_V_(i) either withor without a comparison with threshold α. If the threshold α is used,the user terminal 108 may adjust the weight W_(i) of category i by aspecific increment Δ if added value A_V_(i) is greater than threshold α.The value of Δ and α can be preset according to the actual needs. In anexample, the range for Δ and α may be on the same order of magnitudewith the original value of weight of a category. If the weight W_(i) ofcategory i is reduced, the memory space allocated to category i willbecome smaller, thus permitting less Internet information (e.g., lessweb pages) of that category to be stored.

Referring again to FIG. 4, in block 406, the user terminal 108 mayidentify the amount of unused memory. For example, the processor 206 mayquery the memory 208 to determine the amount of unused space. In variousexamples, the available memory size can be fixed or dynamic. For adynamic memory size, the memory 208 may estimate the amount of unusedspace based on memory usage history information and may communicate theestimate to the processor 206. In an example, if a user inputs feedbackat the user terminal 108 indicating Internet information of interest issatisfactorily being stored, the memory 208 may reduce the estimate ofthe amount of unused memory space. If the user inputs feedback at theuser terminal 108 indicating that Internet information is not beingreceived and/or the processor 206 indicates that Internet information ofinterest is not going to be broadcast in a future time period accordingto the category guide, the memory 208 may increase the estimate of theamount of unused memory space. For a fixed memory size, the memory 208may identify the total amount of unused space and may communicate thetotal amount or some lesser proportion thereof to the processor 206.

In block 408, the user terminal 108 may allocate the unused memory toeach category according to the assigned weight. The user terminal 108may allocate memory space in accordance with either equation set forthbelow or others:

$\begin{matrix}{{M_{i} = {\frac{W_{i}}{\sum\limits_{i = 1}^{N_{s\; \_ \; c}}\; W_{i}} \times M_{Total}}},{or}} & (2) \\{{M_{i} = {{\beta \times \frac{S_{i}}{\sum\limits_{i = 1}^{N_{s\; \_ \; c}}\; S_{i}} \times M_{total}} + {\left( {1 - \beta} \right)\frac{W_{i}}{\sum\limits_{i = 1}^{N_{s\; \_ \; c}}\; W_{i}} \times M_{Total}}}},} & (3)\end{matrix}$

where Ns_c is the total number of categories selected by user or thetotal number of categories have been assigned a weight by examining theuser's browsing history, M_(Total) is the free memory space, W_(i) isthe weight assigned to the ith category, where i=1, 2, . . . , N_(s)_(—) _(c), and S_(i) is the size (e.g., 2000 MB) of all of the Internetinformation included in the ith category. Equation (2) allocates memoryspace based on the weight assigned to a particular category. Equation(3) allocates the memory space of every selected category based on twofactors: the weight assigned to the category and the amount of Internetinformation in the category. β represents the different influence of thetwo factors for the allocating memory space. The value of β can bedetermined according to the actual needs. If β=0, equation (3) is thesame as (2). As such, the user terminal 108 may allocate a memory sizeto every category based on the information on memory requirementsreceived in the category guide, the weight assigned to the category, andthe available memory size. FIG. 6 illustrates an example of memoryallocation for a user terminal to illustrate one or more exampleembodiments of the invention.

Referring again to FIG. 4, in block 410, the user terminal 108 mayreceive and process the broadcast Internet information according to thememory allocation. For example, the processing by user terminal 108 maydetermine whether to keep or discard the received broadcast Internetinformation based on the memory allocation. The user terminal 108 maydetermine whether to store the received broadcast Internet informationbased on the time, category, and/or version identifiers included in thebroadcast Internet information. The time identifier may indicate a starttime (e.g., time when the provider server 102 will begin broadcastingInternet information of the category, such as 8:00 PM), an end time,time interval, and/or Durationfromnow data. As described above, thecategory guide can include the start time and end time for category.Additionally, the Durationfromnow data in the category guide avoids timedesynchrony between provider server 102 and user terminal 108.Desynchorony may occur when the clocks of the user terminal 108 and theprovider server 102 differ. For instance, if the clock of the userterminal 108 indicates that the current time is 8:00 PM, and the clockof the provider server 102 indicates that the current time is 8:10 PM,time desynchrony may occur. The Durationfromnow data is relative valueindicating that the Internet information of a particular category willbe broadcast after a certain amount of time (e.g., thirty minutes fromnow). The user terminal 108 may process the Durationfromnow data todetermine when a desired category is being broadcast and may store thereceived broadcast Internet information at that time in the memory spaceallocated to that category.

The user terminal 108 can also process the category identifier includedin the broadcast Internet information to determine when to begin storingthe broadcast Internet information received at the transceiver 204. Asdiscussed above, the provider server 102 may add a unique categoryidentifier to the Internet information being broadcast. The userterminal 108 may process the category identifier to determine whether tokeep or discard the received Internet information. If the user terminal108 has enough allocated space in the memory 208 for the category beingbroadcast, the user terminal 108 may store the received Internetinformation at the location in the memory 208 allocated to thatcategory. If the user terminal 108 has not allocated space in the memory208 for the received category of Internet information, then the userterminal 108 may discard the received Internet information. In oneexample, the broadcast Internet information may be received by a lowerlayer. The application layer of the user terminal 108 may determinewhether keep or discard the received broadcast Internet informationaccording to the unique identifier of category.

When the user terminal 108 allocates less memory than the size of acategory, a secondary weight may be assigned to every discrete portionof Internet information in a category (e.g., a webpage in a categoryincluding ten webpages) based on importance or popularity. The secondaryweight can be assigned by the provider server 102 after crawling andparsing the Internet information and/or can be assigned based oninformation input by the user prioritizing subcategories within acategory. If two or more types of Internet information have the samesecondary weight and there is not enough memory space, processor 104 mayuse an arbitrary metric, such as the publication time of the Internetinformation to determine which to keep and which to discard.

Referring to FIG. 4, in block 412, the user terminal 108 may revise theweights assigned to the categories at periodic intervals based on thebrowsing history of the user in the latest time period T. The revisionsmay occur as described above in block 408. For instance, the userterminal 108 may evaluate the browsing history of the user within thelast T seconds, minutes, hours, days, etc., and may recalculate theadded value A_V_(i) for each of the categories to adjust theirrespective weights W_(i). Similar to the description above, the userterminal 108 may optionally limit adjustments of the respective weightsW_(i) to instances when the added value A_V_(i) is greater thanthreshold α. If the amount of memory for a particular category has beenreduced from that previously allocated, the memory 208 may write overthe previously allocated memory. To determine which Internet informationto overwrite, the memory 208 may write over the Internet informationhaving the oldest publication time, the Internet information that wasthe least accessed by the user, or in other suitable manners. As such,the above description provides an improved way of allocating memory in auser terminal.

Accordingly, a tremendous volume of Internet information can bebroadcast, but the memory space of a user terminal may be limited.Example embodiments of the invention efficiently allocate the memoryspace of a user terminal and selectively store broadcast Internetinformation based on user interest and/or user browsing history withoutinvolving the user terminal providing feedback to the provider server.

Internet information can be identified and organized into categories,such as an entertainment category, a sports category, etc. The Internetinformation may include Internet web pages, for example. Before beingbroadcast, a category guide may be communicated to one or more userterminals to identify the types of categories to be broadcast, the size(e.g., 2000 MB) of the Internet information included in each category,the number of different types of Internet information in each category,and so on. The user terminal may use the category guide in allocatingits memory and in determining when to retain broadcast Internetinformation of interest to the user.

To efficiently allocate its memory, the user terminal may receiveselections of categories of interest from a user and/or analyze browsinghistory of a user in each of the categories. The user terminal mayassign each category a weight, which can represent the fondness degreeof the user for the category, and may allocate memory space based on theweight. The user terminal also may adjust the weight assigned to acategory according to subsequent user browsing behavior. The browsinghistory of the user terminal may identify the types of Internetinformation of interest to the user by category (e.g., sports, movies,etc.). The description provided below describes various exampleembodiments of categorizing Internet information for broadcasting bycategory and allocating the memory space of a user terminal inaccordance with example embodiments of the present invention.

The foregoing description was provided with respect to adjusting memoryallocation of a user terminal in a network computing environment. It isunderstood that the principles described herein may be extended tonetwork computing environments that are wired, wireless, or both.

Although the subject matter has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described above.Rather, the specific features and acts described above are disclosed asexample forms of implementing the claims.

What is claimed is:
 1. A server comprising: at least one processor; andat least one memory unit in communication with the at least oneprocessor, the at least one memory unit includes at least one computerprogram code and the at least one memory unit and the computer programcode are configured to, with the at least one processor, cause theserver to perform at least the following: receive, at the server, dataof Internet information use and categories of interest; generate acategory guide, the category guide representing an aggregation of aplurality of categories; communicate the category guide to at least oneuser terminal; receive update information from the at least one userterminal; and update the category guide based on the update informationand update aggregation information for each of the categories.
 2. Theserver of claim 1, wherein the server encrypts the category guide basedon service subscription of the at least one user terminal and theencrypted category guide is communicated to the at least one userterminal.
 3. The server of claim 1, wherein the server sends a requestfor the update information to the at least one user terminal andreceives the update information as a response to the request.
 4. Theserver of claim 1 wherein the category guide includes the plurality ofcategories and each category includes a category description.
 5. Theserver of claim 1 wherein the server communicates memory requirementsfor the category guide to the at least one user terminal.
 6. The serverof claim 1 wherein the server monitors Internet browsing behavior of theat least one user terminal.
 7. The server of claim 1 wherein the serverreceives memory information from the at least one user terminal andupdates the category guide with the received memory information.
 8. Theserver of claim 1 wherein the update information includes preferenceinformation of the at least one user terminal.
 9. The server of claim 8wherein the server monitors the at least one user terminal for changesin the preference information.
 10. The server of claim 9 wherein theserver receives new preference information associated with the at leastone user terminal and updates the preference information with the newpreference information for the at least one user terminal.
 11. Theserver of claim 10 wherein the preference information is used to updatethe category guide that the server communicates to the at least one userterminal.
 12. A method comprising: receiving, at a server, data ofInternet information use and categories of interest; generating, at theserver, a category guide, the category guide representing an aggregationof a plurality of categories; communicating the category guide to atleast one user terminal; receiving, at the server, update informationfrom the at least one user terminal; and updating the category guidebased on the update information and update aggregation information foreach of the plurality of categories.
 13. The method of claim 12, whereinthe server encrypts the category guide based on service subscription ofthe at least one user terminal and the encrypted category guide iscommunicated to the at least one user terminal.
 14. The method of claim12, further comprising: sending a request for the update information tothe at least one user terminal; and receiving the update information asa response to the request.
 15. The method of claim 12 wherein thecategory guide includes the plurality of categories and each categoryincludes a category description.
 16. The method of claim 12 furthercomprising communicating memory requirements for the category guide tothe at least one user terminal.
 17. The method of claim 12 furthercomprising monitoring Internet browsing behavior of the at least oneuser terminal.
 18. The method of claim 12 further comprising receivingmemory information from the at least one user terminal and updating thecategory guide with the received memory information.
 19. The method ofclaim 12 wherein the update information includes preference informationof the at least one user terminal.
 20. The method of claim 19 furthercomprising monitoring the at least one user terminal for changes in thepreference information.
 21. The method of claim 20 further comprising:receiving new preference information associated with the at least oneuser terminal; and updating the preference information with the newpreference information for the at least one user terminal.
 22. Themethod of claim 21 wherein the preference information is used to updatethe category guide that the server communicates to the at least one userterminal.